package com.itheima.d7_jdk8_time;

import java.time.LocalDateTime;
import java.time.ZoneId;
import java.time.ZonedDateTime;
import java.util.Set;

public class Test4_ZoneId_ZonedDateTime {
    public static void main(String[] args) {
        // 目标：了解时区和带时区的时间。
        // 1、ZoneId的常见方法：
        // public static ZoneId systemDefault(): 获取系统默认的时区
        // 获取ZoneId对象调用getId方法获取时区
        ZoneId zoneId = ZoneId.systemDefault();
        System.out.println(zoneId);

        // public static Set<String> getAvailableZoneIds(): 获取Java支持的全部时区Id
        Set<String> zoneIds = ZoneId.getAvailableZoneIds();
        System.out.println(zoneIds);

        // public static ZoneId of(String zoneId) : 把某个时区id封装成ZoneId对象。
        ZoneId newYork = ZoneId.of("America/New_York");

        // 2、ZonedDateTime：带时区的时间。
        // public static ZonedDateTime now(ZoneId zone): 获取某个时区的ZonedDateTime对象。
        ZonedDateTime newYorkTime = ZonedDateTime.now(newYork);
        System.out.println(newYorkTime);
        LocalDateTime localDateTime = newYorkTime.toLocalDateTime();
        System.out.println(localDateTime);

        // 世界标准时间了
        // ZonedDateTime now1 = ZonedDateTime.now(Clock.systemUTC());
        // System.out.println(now1);

        // public static ZonedDateTime now()：获取系统默认时区的ZonedDateTime对象

        // 了解 : Calendar instance = Calendar.getInstance(TimeZone.getTimeZone(zoneId1));
    }
}
